1. Field of the Invention
The present invention relates to content caching in a network computing environment, and deals more particularly with techniques for negotiating the dynamic distribution of cache content.
2. Description of the Related Art
Content caching techniques are commonly used in a network environment such as the Internet. A sample network configuration 100 is shown in FIG. 1. When a client 101 requests Web content from a Web/application server (“WAS”), such as WAS 109, the content can be returned more quickly if it is already stored in a cache store that is located near the requesting client 101. For example, in FIG. 1, the request from client 101 may be received at a load-balancing server (“LB”) 102, such as the IBM® WebSphere® Edge Server. Unbeknownst to the requesting client, this LB server transparently handles requests for the actual Web/application server, which is located at the “back end” of the Web site. (“IBM” and “WebSphere” are registered trademarks of International Business Machines Corporation.)
An edge server such as the IBM WebSphere Edge Server may actually serve two functions. First, it may serve as a load-balancing server. In this mode, the edge server improves a Web site's performance, scalability, and availability by transparently clustering edge, Web, and application servers. (That is, the edge server serves as a single entry point into the network, from which these various servers are transparently accessible.) The LB server also provides site selection, workload management, and transparent fail-over. Load-balancing servers are distributed throughout the network in locations where they provide convenient customer access, thereby easing network congestion.
The second function an edge server may perform is that of a caching proxy (“CP”) server, such as CP 107 in FIG. 1. (The load balancing and caching proxy functions are depicted in FIG. 1 as distinct entities 102, 107 to highlight their functionality. In some cases, these functions may be combined in a single product, such as the IBM WebSphere Edge Server. In other cases, these functions may be provided as separate products.) A CP server improves customer response time by offloading requests for content (such as images, static Web pages, dynamic Web page content, streaming video, and so forth), whereby cached content can be returned 104 directly from the CP server 107 to the requesting client 101 rather than requiring access to a WAS 109 at the back end of the network.
A LB server is aware of the caching proxy servers (e.g., CP servers 105, 106, 107) from which it is able to obtain content. When the LB server 102 receives a content request from client 101, for example, LB server 102 will choose one of the available CP servers such as CP server 107 (using round-robin selection or some other technique), and forward the client's request to that CP server. (Alternatively, the LB server may use redirection to notify the requesting client that the client should request the content directly from the selected CP server.)
Upon receiving a content request, the CP server checks its local cache. If the requested content is found in the cache, this is called a “cache hit”, and the CP server returns that content to the requester (for example, as shown by path 104).
If the requested content is not in the cache, this is called a “cache miss”. In this case, the CP server requests the content from the Web/application server, such as WAS 109. The WAS returns the content to the CP server, and the CP server then places that content in its local cache and also returns the content to the requesting client.
Optionally, each WAS and edge server can be monitored by a Web site analysis tool, such as the IBM Tivoli® Website Analyzer (“TWA”), which is shown in various locations in FIG. 1. For example, TWA 103 is shown as monitoring LB server 102. Website Analyzer is aware of all content requests arriving at the WAS or edge server, and keeps track of this historical data. (“Tivoli” is a registered trademark of International Business Machines Corporation.)
Another piece of commonly-used software is a central database storage facility such as IBM Tivoli Enterprise Data Warehouse (“TEDW”), which is shown at 110 in FIG. 1. TEDW provides a centralized repository in which historical management systems data can be recorded. Thus, TWA may forward information it gathers to TEDW for recording.
A common task for keeping this Web infrastructure working as it should is the distribution of content to the CP servers. Presently, this is done by one of two techniques: content is distributed responsive to a particular client request during a cache miss (as described above), or a systems administrator manually distributes content to CP servers (typically by reviewing reports of past content requests).
In the cache miss case, the CP server's local cache is always updated, even when this is not optimal. For example, when a cache miss occurs for a rarely-requested piece of content, the CP server's local cache will be updated even though that content is not likely to be requested again. This is a waste of scarce resources.
If the CP server's cache was already full when this rarely-requested content is cached, even more problems are created. The cache-miss content will need to replace some already-cached content. Complex and compute-intensive algorithms may be required to determine which previously-cached content should be replaced. When the cache-miss content is rarely requested, these computations are also wasted overhead. Furthermore, the content that is replaced may result in a cache miss of its own if it is subsequently requested, which will consume additional resources.
In the case where a systems administrator manually distributes content, reports generated from historical data gathered by TWA and stored by TEDW may be used in the administrator's decision-making process. However, this task of deciding which content to distribute, and where it should be distributed, is a never-ending job. When a potential CP server is selected by the administrator, the administrator also has to look at what content is already being served by that CP server to determine if the new content is higher priority than that which is already being served. This is a non-trivial task even in a relatively simple environment, and becomes overwhelming in an enterprise Web infrastructure which may have hundreds of servers and hundreds of thousands of pieces of content.
Accordingly, what is needed are improvements in content distribution to caching proxy servers.